export const uuid = (len: number, radix?: number, onlyLowerCase?: boolean) => {
    let chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
    if (onlyLowerCase) {
        chars = 'abcdefghijklmnopqrstuvwxyz'.split('');
    }
    const uuid = [];
    let i;
    radix = radix || chars.length;
    if (len) {
// Compact form
        for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
    } else {
// rfc4122, version 4 form
        let r;
// rfc4122 requires these characters
        uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
        uuid[14] = '4';
// Fill in random data.  At i==19 set the high bits of clock sequence as
// per rfc4122, sec. 4.1.5
        for (i = 0; i < 36; i++) {
            if (!uuid[i]) {
                r = 0 | Math.random() * 16;
                uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
            }
        }
    }
    return uuid.join('');
}
export const calcAngle = (start: number[], end: number[]) => {
    const lon1 = start[0]
    const lat1 = start[1]
    const lon2 = end[0]
    const lat2 = end[1]
    const deg2rad = Math.PI / 180;
    const dlat = (lat2 - lat1) * deg2rad;
    const dlon = (lon2 - lon1) * deg2rad;
    const y = Math.sin(dlon) * Math.cos(lat2 * deg2rad);
    const x = Math.cos(lat1 * deg2rad) * Math.sin(lat2 * deg2rad) - Math.sin(lat1 * deg2rad) * Math.cos(lat2 * deg2rad) * Math.cos(dlon);
    let angle = Math.atan2(y, x) * 180 / Math.PI;
    // 将逆时针角度转换成正角度
    angle = angle < 0 ? -angle : 360 - angle;
    return angle;
}
export default {
    uuid,
    calcAngle,
}
